About us
Four of us, all young, all a bit obsessed with this. We build websites and put AI inside them — not bolted on afterwards, because AI turned up while we were still learning. Most studios adopted it; we never worked any other way. This site is written by hand, and it is the sample.
Keenan Casalegno
Founder · Full-stack engineering and design
Founded and runs FloraSites. Designs and builds the sites: the interface, the technology that makes them work, and the AI agents inside them. Organises how the team works — who does what, and by when — and sees every project through from first prototype to launch.
- AI agents
- Automation and API integrations
- E-commerce
- Bilingual sites
- Graphic and visual design
- Technical SEO and performance
- Accessibility
- Hosting and deployment
- Technical direction
- Running the team
Francesco Macchia
Co-founder · Sales
Francesco runs sales. He is the first conversation: working out what the business actually needs, saying plainly whether we can be useful, and putting the quote and the timings in writing. Anyone who gets in touch talks to him before anyone else.
- Discovery and requirements scoping
- Quotes, proposals and delivery timelines
- Stakeholder communication
Liam Casalegno
Partner · Project management
Liam keeps the projects moving. After the quote the work passes to him: gathering copy and materials, holding the dates, taking revisions through to sign-off and seeing the launch out. He is the person to ask where something has got to.
- Timelines and progress
- Copy and asset coordination
- Revision management and client sign-off
- Launch planning and handover
Matteo Colombini
Partner · Sales
Matteo works on sales alongside Francesco: taking first enquiries, working out what the business is looking for, and setting up the conversation with the people who will build the site.
- Discovery and requirements scoping
- Quotes, proposals and delivery timelines
- Stakeholder communication
( Engineering )
What Keenan builds with.
TypeScript
130,962
Python
56,703
- lines written, excluding dependencies and generated code
Languages
TypeScriptJavaScriptPythonRustSQLGraphQLHTMLCSSLiquidBash
Interface
React 19Next.js 15Tailwind CSS v4AstroPreactZustand
Motion
GSAPMotionanime.jsreact-spring
3D and graphics
WebGLthree.jsReact Three FiberOGLOpenSCAD
Maps and charts
CesiumD3RechartsLightweight Charts
Data
PostgreSQLSupabaseSQLite
AI
Local modelsFrontier modelsCoding agentsMulti-agent pipelinesTool callingStructured outputEvalsOllamaMCPPydanticZod
Desktop and terminal
Taurinode-ptyxterm.jsWebSockets
Platform
Cloudflare WorkersOpenNextWranglerVercelDocker
Commerce
ShopifyShopify Admin APIShopify FlowApp Bridge
Images and video
sharpAVIFWebPFFmpeg
Build and test
VitepnpmPostCSSESLintVitestpytest
( FloraSitesAI )
Speak directly to our AI agent
It answers straight away on services, timings and how we work. It is the same kind of agent we put inside the sites we build — this one answers for us.