Coder Social home page Coder Social logo

significa / significa.co Goto Github PK

View Code? Open in Web Editor NEW
214.0 11.0 48.0 90.17 MB

This is the repo with the source code for Significa's website, our very own nest on the web. Launching a new website has been something we have been wanting to do for years, but we never found the time – the shoemaker's son goes barefoot, right? In 2023, we finally did it. We find it a work of art, but of course, we are biased. Give it a go.

Home Page: https://significa.co

License: GNU Affero General Public License v3.0

JavaScript 0.36% TypeScript 4.20% Shell 0.01% HTML 2.01% Svelte 93.42% CSS 0.01%
agency-website significa sveltekit website typescript

significa.co's Introduction

readme banner with significa's illustrations

Significa website

This is the repository with the source code for Significa's website, our very own nest on the web. We find it a work of art, but of course we are biased.

If you find it interesting, inspiring or learn something from it, make sure to leave a star ⭐️

Architecture

We developed this website using Svelte + SvelteKit, and a custom UI library @significa/svelte-ui published under significa/significa-svelte-ui

To accomplish all features, we leverage a few external services:

  • CMS - Storyblok: It's where we configure the website, build pages, store and serve assets.
  • Storage bucket - AWS S3: Used to store attachments, uploaded via the contact forms.
  • Email dispatcher - AWS SES: Used to dispatch notification emails.
  • NOSQL database - AWS Dynamo DB: Intended to store and retrieve egg drawings "seggs" drawn by our users.
  • Form submission database - Notion: We create a new entry on a Notion database when someone submits a form. This way we can keep everything in a centralized space.

The website is hosted on Vercel, and deployed via GitHub Actions workflows. All Continuous Integration (CI) validations are also made via GiHub Actions.

We have three distinct environments for the website:

  • local-development for developers to develop and test their code on their machine;
  • staging bounded to the main branch and preview deployments (pull requests);
  • production deployed when a release is published.

This means that the whole infrastructure has a version for each environment. Includes distinct keys and external and integrations: AWS resources, Notion applications, databases, etc.

Here's how everything is connected (arrows represent the request initiator):

infrastructure diagram

Contributing

The development of this project follows an internal roadmap. Therefore we usually are only open to improvements and bug-fixes.

Requirements

  • Install the node version specified in the .nvmrc file (using your favourite node version manager).

  • Get the local development .env using 1password-secrets: 1password-secrets local pull. Or create one with based on the example in .env.example.

  • Install the dependencies with npm install (or npm ci for a frozen lockfile).

Development

  • Start the development server: npm run dev
  • Auto format the code: npm run format

Testing and linting

  • npm run validate
  • npm run test

Deployment and release

The staging branch is bounded to the main branch, create a PR against it for a new feature.

To deploy a new production version, create a semver release in GitHub (prefixed with v, for example: vX.X.X).

To create hotfixes:

  • Check-out to the latest release git checkout vX.X.X;
  • Create a new branch git checkout -b hotfix/XXXX;
  • Create a PR to main, get approval, and merge it;
  • Create a new release based on your hotfix branch. Use release/xxx branches to batch fixes together.

License

This material is licensed under the AGPL License, feel free remix-it, learn and play with it as you wish. But note that distribution of the source code under the same license is mandatory.

significa.co's People

Contributors

cleysonlb avatar danielscosta avatar danilowoz avatar darosadev avatar dependabot[bot] avatar filipeff95 avatar guilherme1805 avatar isabelsa avatar joeldmferreira avatar julietafrade97 avatar kaaps avatar michellemeinert avatar nunopolonia avatar pdrbrnd avatar pedrobslisboa avatar pedroet avatar ruicsereno avatar strapazzon avatar tofran avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

significa.co's Issues

Legal

Missing links in Legal
Screenshot 2019-05-16 at 14 50 01

Autocomplete Problems

Problems when autocompleting contact and application form

  • Line and text style different when you select something from autocomplete
  • Error style given when selecting autocomplete email
  • Border-bottom stays highlighted when. leaving the form after using a value from autocomplete

Create header component / consistent spacing

As things were progressing lots of code was repeated and things could be more DRY.

possibly we need to create a component for the top of the pages that brings more consistency to spacings and alignments (related to #86)

there are also some more spacings that need reviewing (e.g.: about in mobile had different spacing between title and text in different sections)

CI Bot: Google Lighthouse

What about we start to use this CI to avoid user critical issues in production?

I think that some important issues (SEO, a11n, etc) may unnoticed, even using Eslint, Typescript and code review. Initially, it may be hard to reach great scores, but once we have solved all issues, we just need to make sure no new problems are created.

As we have many different professionals working here (designers, developers, and writers), it will show the importance to use lightweight images, alt/descriptions, and keywords.

If it works fine in our own project, it can be a great idea to use in our client's projects.

Documentation

Team mobile

I think the list is too long, what about shows it in two columns?
Screenshot 2019-05-16 at 11 46 27

Open mobile menu is strange

now that the mobile menu is fixed with headroom, it's really strange if you open and scroll.
it stays visible when scrolling.

we should:
a) disable scroll and page interactions when menu is open (careful with mobile safari bottom bar appearing and elastic scrolling - needs to be thoroughly tested)
b) close the menu when interacting with anything else on the page.

either option is fine as long as the open menu doesn't stick around when scrolling

Add section link to type=sticky

Currently only type=text has linking capabilities. Also, the sidebar navigation only looks at these sections.

We need to add the same functionality to type=sticky.

Improve open graph image

this image is unsquarable so it doesn't work in reddit, for instance.

New main open graph image is needed

Share

  • Agency :(
  • Shouldn't the image appears bigger?
    Screenshot 2019-05-16 at 12 01 42
  • og:image is not working;

From a SEO checker url:

  • The tag <meta property="og:site_name"> is missing.
  • The tag <meta property="og:url"> is missing.
  • The tag <meta name="twitter:site"> is missing.
  • The title seems too short, it should be between 55 and 66 characters.
  • Your description is too short and should contain between 70 and 160 characters.

Services

  • Sections overlapping the content in Firefox
    Screenshot 2019-05-16 at 11 26 01

Social links

  • Title is completely wrong;
  • Missing twitter?
  • The hover effect is too smooth that I even couldn't notice

Firefox Font Weight Renders Too Bold

Screenshot 2019-05-16 at 11 11 28

Possible solution:

  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;

or

/**
 * Fix fonts that render as bold in Firefox
 *
 * Put this near the top of your style.css
 * Before any overriding styles
 */

html {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-smoothing: antialiased;
  font-weight: 400;
}

/**
 * Firefox specific rule
 */

@-moz-document url-prefix() {
  body {
    font-weight: lighter !important;
  }
}

Form

  • Should we validate the portfolio link field?
  • Removing input background color for Chrome autocomplete: Solution
  • Input field is overlapping the button on mobile
    IMG_9308

Menu mobile

  • Weird behavior when the menu is opened and scroll down
    Screenshot 2019-05-16 at 11 42 42

Header mobile coherence

On all pages on small screens, the title is aligned to the left, except "About" and "Labs" pages the title is centered. My opinion is that the title aligned to the left is better to read on the mobile.

What do you think?

Wrong team names and positions

  • Change Resendes to Furtado
  • Change Marino to Marinho
  • Change "Front-end developer" and "Back-end developer" to "Developer"
  • Change "Product Designer" to "Designer"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.