Making a website: 5 lessons I learnt from making KiwisInSTEM.com

Making a website: 5 lessons I learnt from making KiwisInSTEM.com

Published on: Nov. 4, 2024, 11:58 p.m.

Websites and apps are now the main way to reach audiences with digital content, and in today’s digital age, it’s essential for companies and organizations to have an online presence. With no-code tools on the rise and the use of AI speeding up website creation, it’s becoming easier and easier to build a website that meets the needs of many. So why did I decide to develop KiwisInSTEM as my own custom website? In this article, I’ll share why I chose this somewhat unusual path and some lessons I learned along the way.

Why did I start developing KiwisInSTEM? 

The templates from services like Squarespace just didn’t fit what I needed. I didn’t want an e-commerce website or a blog, and I didn’t want a full-on social media platform. What I wanted was something custom-made. When I spoke with people in the community earlier this year in Cambridge, many of them wanted to stay updated on what was happening both in New Zealand, and in the United Kingdom. They wanted one place to find relevant articles and news, to connect with others, and to know about upcoming networking events.

For this, I created three main parts: articles to share information with the group, events to help people build real-world connections, and a community section to make it easy for people to connect through LinkedIn. I didn’t want this to feel too much like social media—I see KiwisInSTEM as a way for people to stay informed and meet each other rather than a platform where they spend a lot of time browsing or posting.

 

    1. It takes time

 

Building a website from scratch takes much longer than you might think. Even the small details, like email validation, maps, and community profiles, can add up to a huge amount of work. Pages like “Contact Us,” user sign-up and login, events, articles, and admin panels—each of these required more time than I expected.

For example, setting up the user sign-up process included building forms, validating emails, and formatting the pages so they looked nice and worked well. Some of these tasks were straightforward, while others took me a long time and left me feeling frustrated, especially when I had to troubleshoot issues I didn’t expect.

Over time, I learned that sometimes it’s easier to pay a small fee for something rather than spending hours trying to create it from scratch. Cookies, for instance, were incredibly hard to get right, and there are services that will handle that for you for a small fee. I may consider that approach in the future!

 

    2. Get to know your tools

 

I spent a lot of time during my PhD using Python for modelling and simulations. Because of that past knowledge, I wanted to use Python to build the website as I was much more comfortable with it.

I used Python and Django for the backend, with HTML, CSS, and JavaScript for the frontend, plus Bootstrap for styling. Leaflet was my choice for adding a map, and CKEditor 5 was a big help when writing articles—it’s a WYSIWYG editor, which lets you see what your article will look like as you write it (WYSIWYG  = What you see is what you get). This makes editing faster and more accurate.

Git was also essential for managing my code, and Trello was helpful for keeping track of what still needed to be done. Even though I was working solo, it helped me stay organized, which I’d recommend for anyone doing a similar project.

For hosting, I went with GoDaddy, which includes an Outlook email server so I can send emails to users. I’m hosting the Python backend on PythonAnywhere, though I might need to upgrade the plan if I add more features or if the user base grows.

A lot of these tools and libraries were new to me so now that I am aware of what is out there, I think future work using these tools will go be a little easier.

If you haven't done web development before I recognize that all of these names for things will sound like gibberish. It just goes to show that there are a lot of concepts and work flows to learn to create something new.

 

    3. Practice makes perfect, and professionals exist

 

If I were to do this again, I know there are many things I’d do differently. After building the site once, I’d have a much better approach if I tried a second time, and after 100 times, I’d likely have a smooth, reliable process. Experienced web developers who have done this many times have skills and knowledge that I don’t yet have, and that’s something to keep in mind.

For big projects, it’s probably a good idea to get help from people with experience. That said, I wanted this to be a learning experience, and as a DIY Kiwi, I like doing things myself even if it takes me longer. This project gave me the chance to learn, and now KiwisInSTEM is well-positioned to adapt and grow with the community's needs.

I also think that by doing this and sharing this work with others, I can grow my skills and get feedback from this community of experts and there's a good chance that there are going to be some KiwisInSTEM that have made websites themselves!

 

 

    4. Front end development vs back end development

 

If you’re new to software engineering or web development, the frontend is mainly about how things look and feel on a website, while the backend is about collecting and storing data.

In the backend, I set up URLs like KiwisInSTEM.com/profiles to show all profiles and KiwisInSTEM.com/profiles/1 to show an individual profile. The backend is where you deal with databases, data models, and routes to make sure everything connects and loads correctly.

The frontend is more visual—it’s styling things like fonts, colors, and making buttons change when you hover over them. Personally, I enjoy backend development because it’s more data-driven. Frontend development feels more like art, where you’re trying to make everything look polished and consistent, which I find challenging. Despite the tools available, making everything look just right requires creativity and attention to detail, which I still struggle with.

In a typical team, the frontend and backend would be handled by different people, but as a solo developer, I’ve had to learn both sides. This is what they call “full-stack development,” and it’s rewarding but definitely challenging.

 

 

    5. Using ChatGPT

 

AI is the latest buzzword in the technology world. Before this, it was blockchain, cryptocurrency, and the metaverse, all of which had their moments. AI is integrating into many of our daily tasks, and it feels like it is here to stay despite the significant challenges associated with it including the demanding power consumption and intellectual property rights.

Personally, I wanted a DIY solution, so I tried to avoid plugins with monthly fees that could automatically build a lot of the website for me. I did, however, use OpenAI’s free version of GPT-4 a lot throughout this project.

One of my favorite ways to get started with ChatGPT was to say something like:

“I’m making a website using Python, Django, and Bootstrap. I’ve already done a lot but would like some help. Can you act like a software developer and work with me on some new features?”

ChatGPT was incredibly useful for helping me learn quickly and for getting unstuck when I ran into challenges. Whether it was helping me understand an error, providing examples, or suggesting new approaches, having ChatGPT as a tool sped up the process and made it easier to tackle the harder parts.

I'd certianly recommend using AI if you're trying to learn a new skill like web development, it has helped me a lot by answering some questions in seconds that could have taken hours with google searches alone.  

 

Reflecting on these lessons, I’m glad I took on the challenge of building KiwisInSTEM from the ground up. The process wasn’t always easy, and there were plenty of moments where I had to push through frustration or take the time to learn something completely new. But the result is a site that reflects exactly what I envisioned—a platform for New Zealand’s STEM community to connect, learn, and grow together. While I now understand the value of bringing in experienced developers and using paid tools, the hands-on experience has been invaluable. I’ve not only created a site but also gained skills and insights that will help me grow with the project as the community’s needs evolve. In the end, this experience wasn’t just about launching a website; it was about building something meaningful for people who share a passion for STEM. And that, to me, made every challenge worthwhile.

Tags
  • web development
Back to Articles