I built a website nobody asked for, and it beat the agencies.
6'5" Bare Minimum
May 2025. By day, I was an intern at a cybersecurity research lab in Cardiff. By night, I dreamed of entrepreneurship. Guided by my instinct (and way too many TikToks), I decided to "follow my passion" (building websites) and looked for a first client. My criteria:
- small business
- in my hometown in France
- doesn't have a website
- 6'5" bare minimum
The first candidate was a coffee shop I'd been going to for three years. Let's check:
- ✅ Small business (no offense)
- ✅ In my hometown
- ✅ Doesn't have a website
- ❌ The owners are not 6'5"
I spent approximately 0.5 seconds wondering if the last criterion was really important, and then decided to go for it anyway.
Build First, Reach Out Later
The problem: I'm a developer, not a sales guy. I don't want to make PowerPoints, analyze the market to learn that it's saturated, or prepare a 30-second pitch in case I randomly cross their path in an elevator (and decide to be weird and talk to them, who does that?!). So I thought to myself "What if, instead of pitching, I just built it?". A first version, quick enough not to waste my time, solid enough to show what the site would look like and what it would bring them.
I'd been building websites for 6-8 months, using a simple but modern tech stack:
- NextJS, based on React, for the frontend and backend (even though I don't really have a backend like a "/api/v1/..." path as this is handled automatically by Next)
- TailwindCSS for the styling, Shadcn/ui for the components, almost always customized to fit in a specific style, and Lucide for the icons
- A postgreSQL database, for which I chose Neon as the provider
I was comfy with this stack and it was great for a first version because it can easily scale to a production-ready application.
So I started working on a few pages:
- a landing page with the latest news, the opening hours, and a few links to their social media
- a page for their menu
- a page for each of their menu items
The main benefit for the owner was to be a trustworthy source for their menu, because customers couldn't find it online except on visitors' outdated pictures.
I'm Not Cool With Cold Emails
Once the website was built, I deployed it and wrote a short email explaining my thought process: "I'm a student in computer science, I want to learn by doing real work for real client, and I love your coffee shop, so I built a website for you. If you want to have a website and it looks good for you, I'd love to have a talk with you about it."
Since I'm gen z and impatient (and because I was stressed out that they hadn't answered yet), I sent a follow-up only 4 days later with more details about the benefits they would get:
- The website would make the coffee shop more accessible
- It would expand their online presence, and more features (like ordering online) are conceivable
- The website would be entirely free, they would only pay for the domain name
Yes, you read correctly. I was offering my services for 0€ in exchange for a link to my own website in the footer1. I made that decision because I didn't have anything to show on my portfolio that would make them say "Yes he is our guy", so I was trying to make it as easy as possible for them to say "yes".
If you had crossed my path in the following few days after that follow-up, you honestly would have seen me checking my mailing app every 5 minutes for a reply. This was a big deal for me, it was my first "real" project, and coding the website of a coffee shop I'd been going to for years was big, like I would be really proud of it! But at this point, it had been 2 weeks, I had received no answer, so I had given up on receiving an answer. They were busy, they probably received this kind of offer once a week, they had no reason to answer me more than the next email.
My internship ending a few days later, my coworkers organized a farewell party at a bar near the office. So I went there, happy and grateful for the past 2 months I'd been able to spend there, and of course I didn't checking my inbox. But then at the end of the party, I had to walk a little to get back to my apartment, so I checked my inbox, and I saw a new mail from the owners of the coffee shop.
My expectations being that low, I was already happy to have an email in my inbox, but then I read that it was a positive answer to my offer. To summarize, they wrote that they didn't have a website on purpose for various reasons, but my initiative had caught their attention and might change their decision. They also wrote that they didn't have enough time to work with me and set up everything during the summer, but they should have more availability to discuss it in October.
LET'S GOO! I was so happy, nothing was done and official yet, but that was a great first step! I was so happy that I didn't answer. Like, I thought about it regularly and everything, but I just didn't answer...
Up to the 23rd of September, they received no answer. To defend myself, I didn't know what to say, I was stressed out, and I had no incentives to answer quickly because I knew they were busy, so I just procrastinated until the end of September. Finally, I wrote them that my summer had been quite busy too (trigger warning: a huge contradiction is coming) but that I'd had the time to go there a couple of times, and I followed with an invitation to talk about it in person.
So we met for the first time about the website in early October. I explained that the website I'd made was just my vision of the coffee shop, with the first few interesting features I'd thought of, and I navigated the website with them. Then, they told me that they were quite happy with the whole vibe and the features already implemented. They also told me that they had received offers from agencies and freelancers to build a website, set up an email address, etc. but they had never seen the benefit of having one until I sent them my version (yep, it surely boosted my ego for the next couple days to know that my offer was more appealing than professional agencies).
Basically, this meeting proved the whole point of "Build First, Reach Out Later". If I had sent a cold email without a prototype for their website, they probably would have skipped it or answered that they didn't want a website at all.
Time To Work
Then, we had a few meetings to discuss which features would be on the website, how it would be deployed and hosted, where the data would be stored, etc. We decided to deploy and host the website with Vercel on a server in Paris, and to store the data using Neon on a server in London (If Neon's CEO reads this: please set up a server in Paris).
For the features, we shrank them to the minimum so that the website could be deployed officially in April/May. This choice gave us 7 months of development, which would be on my free time as I'd started a work-study program in September for the last year of my bachelor's degree. Here is the list of features for the V1:
Front-office
- News: a carousel on the front page to display their news
- Menu: One page for the different categories of drinks, one page with all the drinks, and one page per drink
- with SEO-optimization
- server-side rendering
- caching
- Daily menu: a page displaying the lunch menu
- Blog: a blog, currently used only to display the history of the coffee shop
- Legal pages
Back-office
- Account management: the foundation for customer and admin accounts, currently only used for admins
- Content management:
- News
- Menu with categories, sub-categories and items
- Daily menu
- Blog with a complete markdown text editor and layout management
We decided that these features were the minimum requirements for the website, so it was time for me to code the features!
As I'd learnt during my bachelor's degree, I didn't want to work for 6 months and give them something that they wouldn't really like, so I wanted a small feedback-loop to make sure I was working in the right direction (say the guy that didn't answer for 2 months). With the work-study program, I was already traveling between Lannion, for the study part, and Saint-Brieuc, for the work part, so we had a meeting every 2 to 4 weeks. In these meetings, I showed them the new features or the progress I'd made, then gathered their feedback and implemented it for the next meeting.
Right On Time
The deadline we set for the deployment of the website's V1 was in May, because the Art Rock festival took place from the 22nd to the 24th of May 2026 and was one of their peak times for their business. I finished the V1 on the 21st of May (comfortably ahead of schedule: ✅) so the website was deployed just on time. They were happy with the website, and Art Rock helped to spread the news so I think this was a success!
Shipping = Easy, Adoption = Hard
Even though they were busy with Art Rock and the peak season that summer is, I kept working on the website and added several features:
- Media library: a centralized way to manage all the pictures and files across the website
- Opening hours management: change their opening days and hours directly from the website
- Unit and E2E tests
I don't aim to add more features and expand the capabilities for now, the main problem right now is that they don't have the habit to use the website. This is why my goal for the next developments is to make the website faster and easier to use, so that they waste as little time as possible filling the daily menus, updating the news, etc.
Conclusion
In the end, the decision I made back in Cardiff led to a year-long project, still going to this day. The owners never reached 6'5" but now they have a website for their customers and I have a real project, grounded in real needs from a real client. Win-Win :)